【C语言】字符串常量与指针】的更多相关文章

一. C语言中,为什么字符串可以赋值给字符指针变量 char *p,a='5';p=&a;                     //显然是正确的,p="abcd";              //但为什么也可以这样赋值??问:一直理解不了为什么可以将字串常量赋值给字符指针变量,请各位指点!   答: 双引号做了3件事:  1.申请了空间(在常量区),存放了字符串 2. 在字符串尾加上了'/0'    3.返回地址你这里就是 返回的地址  赋值给了  p           …
字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中.同时,C 语言提供了一系列库函数来对操作字符串,这些库函数都包含在头文件 string.h 中. 一.字符串常量和字符数组 1.1.什么是字符串常量 C 语言虽然没有字符串类型,但是 C语言提是存在字符串这个概念的,也就是字符串常量:以 NUL 字节结尾的 0 个或多个字符组成的序列.字符串常量是不可被修改的,一般用一对双引号(" ")括起的一串字符来表示字符串…
C语言字符串拷贝利用指针操作,要清楚知道指针的指向 代码如下: #include <stdio.h> #include <assert.h> #include <string.h> char* my_strcpy1(char* dest, const char* src) { assert(dest != NULL && src != NULL); char* ret = dest; while((*dest++ = *src++) != '\0');…
char b[] = "hello"; 则“hello”存于栈中,因为定义的是一个数组. char *b = "hello"; 则"hello"存于静态存储区中,因为定义了一个字符串常量,并把它的地址赋给了b. 如果此时在指针仍然指向静态存储区的情况下通过指针修改其指向的地方,则程序能通过编译,但运行时会报“segmention fault”…
字符串基本操作 字符数组初始化方法 int main() {     //1 {}号法 初始化列表     //数组初始化有2种方法 默认元素个数.指定元素个数     char buf1[] = { 'a', 'b', 'c', 'd', 'e' };    //若没有指定长度,默认数组长度即为参数个数                                                 //若指定长度,指定长度小于参数个数→报错:buf长度多于初始化个数,会自动在后面补充零.   …
函数指针 函数指针是指向函数的指针变量. 通常我们说的指针变量是指向一个整型.字符型或数组等变量,而函数指针是指向函数. 函数指针可以像一般函数一样,用于调用函数.传递参数. 函数指针变量的声明: // 声明一个指向同样参数.返回值的函数指针类型 typedef int (*fun_ptr)(int,int); 以下实例声明了函数指针变量 p,指向函数 max: #include <stdio.h> int max(int x, int y) { return x > y ? x : y…
1.以字符串形式出现的,编译器都会为该字符串自动添加一个\0作为结尾 如在代码中写"abc",编译器帮你存储的是"abc\0". 2.数组的类型是由该数组所存放的东西的类型以及数组本身的大小决定的,如char s1[3]和char s2[4],s1的类型就是char[3],s2的类型就是char[4] 字符串常量的类型可以理解为相应字符常量数组的类型,如"abc"的类型可以看成是const char[4] 3.字符数组和指针的区别 (1)把&qu…
常量存储总结局部变量.静态局部变量.全局变量.全局静态变量.字符串常量以及动态申请的内存区 1.局部变量存储在栈中2.全局变量.静态变量(全局和局部静态变量)存储在静态存储区3.new申请的内存是在堆中4.字符串常量也是存储在静态存储区 补充说明:1.栈中的变量内存会随着定义所在区间的结束自动释放:而对于堆,需要手动free,否则它就一直存在,直到程序结束:2.对于静态存储区,其中的变量常量在程序运行期间会一直存在,不会释放,且变量常量在其中只有一份拷贝,不会出现相同的变量和常量的不同拷贝. =…
2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1          #define 定义一个宏常量 1.1.2          const 定义一个const常量 2.2       字符串常量 “hello world” 对于#define类型的常量,c语言的习惯是常量名称为大写,但对于普通const常量以及变量,一般为小写结合大写的方式 示例代码: #include<stdio.h> #define MAX 10 //定义一个宏常量,值为10 #defi…