(C语言ch084通过指针引用字符串
* * 上一节我们学到了 指针与二维数组 a[i]<=>*(a+i) a[i][j]<=>*(*(a+i)+j) a、a+i、*(a+i)、a[i]、*(*(a+i)+j)等怎么理解 行指针与列指针 如何定义一个指向二维数组的指针 行指针:指向一维子数组,int (*p)[10]; 列指针:指向元素,int *p; 如何向函数传递一个指向二维数组的指针 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * 第8章 善于利用指针 8.1 指针是什么 8.2 指针变量 8.3 通过指针引用数组 8.4 通过指针引用字符串 8.4.1 字符串的引用方式 8.4.2 字符指针作函数参数 8.4.3 使用字符指针变量和字符数组的比较 8.5 指向函数的指针 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.8 动态内存分配与指向它的指针变量 8.9 有关指针的小结 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 字符指针字符串(char *string) 字符串常量 strcpy源码 * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * 回忆字符串 一串以'\0'结尾的字符在C语言中被看作字符串 字符串常量是用双引号括起的以‘\0’结束的一串字符。 在程序开始运行时分配在全局数据区的文字常量区,存储在无名数组中。 相同字符串常量只有一个副本。 C语言表示字符串的两种表示法 字符数组 字符指针 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * 代码区(code area) 操作系统内核区 全局数据区 堆区heap 栈区stack 文字常量区 未初始化静态变量区 已初始化静态变量区 低址 数据区 字符串常量 没有初始化的全局变量和静态变量 初始化的全局变量和静态变量 malloc() free() 局部变量 函数的二进制码 内存分配 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * char[] string 例 例8.16 int main() { char string[] = "I love China!"; printf("%c\n", string[7]); printf("%s\n", string); } 运行时输出: C I love China! Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * char* string 例 例8.17 int main() { char *string = "I love China!"; printf("%s\n", string); } 把存放字符串的无名数组的首地址赋给string。 char *string = "I love China!"; 等价于: char *string; string = "I love China!"; Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * 练习 下面各语句中,能正确进行字符串赋值操作的语句是( ) ?① char s[5] ={"ABCDE"};??????????? ② char s[5] ={'A','B','C','D','E'}; ③ char *s;s="ABCDE"