C语言入门:字符指针变量初始化与数组赋值
需积分: 0 2 浏览量
更新于2024-08-24
收藏 5.67MB PPT 举报
"对字符指针变量赋初值的C语言表达方式以及C语言的历史发展"
在C语言中,字符指针变量的初始化是一个重要的概念。字符指针变量通常用来存储字符串的首地址,使得我们可以方便地操作字符串。下面将详细解释如何对字符指针变量赋初值,并对比数组初始化的不同。
首先,对字符指针变量赋初值的两种等价形式:
1. 直接赋值:
```c
char *a = "I love China!";
```
在这个例子中,`a`是一个指向字符的指针,它被赋予了一个字符串字面量"I love China!"的地址。字符串字面量是常量,且自动在内存的只读区域存储。
2. 分两步赋值:
```c
char *a;
a = "I love China!";
```
在这里,我们先声明一个字符指针`a`,然后将其指向字符串字面量"I love China!"的地址。
然而,对于字符数组的初始化,情况有所不同:
```c
char str[14] = {"I love China!"};
```
这个例子中,我们创建了一个大小为14的字符数组`str`,并用字符串字面量初始化。字符数组的每个元素都会被赋值,包括结束符'\0'。
不能将字符数组的初始化写成如下形式:
```c
char str[14];
str[] = "I love China!";
```
这是不合法的,因为数组名称在C语言中是其首元素的地址,上述代码实际上尝试将整个字符串复制到数组的首地址,而不是对每个数组元素赋值。正确的做法是直接在声明时初始化,或者通过循环逐个赋值。
C语言起源于20世纪70年代,它是由Dennis M. Ritchie在B语言的基础上发展而来的。B语言最初用于编写UNIX操作系统,但因为其过于简单的数据类型处理,C语言应运而生。C语言在保留了B语言的精炼和接近硬件的特性的同时,增加了类型系统和其他功能,使其更加健壮。
随着C语言的流行,1978年出现了由Brian W. Kernighan和Dennis M. Ritchie合著的《The C Programming Language》,这本书成为C语言的经典教材,被誉为“K&R”或“ Kernighan and Ritchie”。C语言在不同计算机平台上广泛移植,1983年美国国家标准化协会制定了ANSI C标准,进一步推动了它的普及。后来,ISO在1990年采纳了ANSI C作为ISO C标准(ISO 9899:1990),并在后续年份进行了修订。
不同的C编译器可能实现了一些特定的功能或扩展,因此了解所使用的编译器的特点是十分重要的。学习C语言时,通常以ANSI C或最新版本的ISO C标准作为基础。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-09-05 上传
2022-05-25 上传
2021-10-02 上传
2010-03-10 上传
2022-11-24 上传
2013-04-30 上传