字符串常量强制转换为字符指针

一、实验代码


#include <stdio.h>

void print(char s[]);

int main()
{
print((char *)"abcdef");
return 0;
}

void print(char s[])
{
printf("%s\n",s);
}

二、实验结果

输出:abcdef

三、调试现象

三、结论

  字符串常量强制转换为字符指针,是将字符串常量的地址作为这个指针值。至于这个常量的位置还不太确定。

时间: 2024-10-07 04:14:22

字符串常量强制转换为字符指针的相关文章

C语言中,为什么字符串可以赋值给字符指针变量

转载于:http://www.cnblogs.com/KingOfFreedom/archive/2012/12/07/2807223.html 本文是通过几篇转帖的文章整理而成的,内容稍有修改: 一. char *p,a='5';p=&a;                     //显然是正确的,p="abcd";              //但为什么也可以这样赋值?? 问:一直理解不了为什么可以将字串常量赋值给字符指针变量,请各位指点! 答: 双引号做了3件事:  1.

标C编程笔记day07 常用标准库介绍、字符串输入处理、字符指针的使用

常用标准库: assert.h:断言,包含assert宏.可以进行自我检查 ctype.h:字符处理,字符的分类,大小转换 errno.h:错误信息处理 float.h:浮点数特性 limits.h:整数的大小,提供了描述整数类型的宏 lcale.h:本地化 math.h:数学函数 setjmp.h:跳转 signal.h:信号处理 stdarg.h:可变长参数处理 stddef.h:经常使用的类型的定义 stdio.h:输入输出 string.h:字符串处理 stdlib.h:其他函数,字符串

字符型指针与字符串常量

字符串常量在编译时系统给定存储位置,可以赋值给字符指针:此时可以通过下标进行访问,但不可以通过下标修改字符串的值. 字符指针指向字符数组时可以修改字符串的值. #include <stdio.h> #include <string.h> int main() { char a[26]; char *b = "abc"; //定义时初始化 b="123"; //可以被重新赋值 //b[1] = 'v'; //不可以被修改 a[1] = b[1]

c++字符指针

对于C/C++中的 字符指针和字符数组,总是在碰到的时候无法确定而不得不现场测试,来确定末尾是否包含'\0',函数到底如何使用等等.真是劳民伤财,现在总结一下: 字符指针的赋值 (1)指向一个字符串常量 char *src = "abcded"; //这种方式由系统自动给该字符指针指定了一个内存中的位置,并且该位置的字符数组为{'a', 'b', 'c', 'd', 'e', 'd', '\0'}; 如果此时再次对 src赋值,src = "mmmt", 则src指

【 C 】字符串常量

当一个字符串常量出现在表达式中时,它的值是个指针常量.编译器把这些指定字符的一份拷贝存储在内存的某个位置,并存储一个指向第一个字符的指针.但是,当数组名用于表达式中时,它们的值也是个指针常量.我们可以对它们进行下标引用.间接访问以及指针运算. 这些操作对于字符串常量是不是也有意义呢? 看看下面这个表达式是什么意思? "xyz" + 1 看上去像是一个垃圾!它好像是试图在一个字符串上面执行某种类型的加法运算. 但是,当你记得字符串常量实际上是一个指针常量时,它的意义就变得清楚了.这个表达

转:字符数组与字符指针

转自:http://blog.csdn.net/qiumm/article/details/5657120 1.字符指针可以指向一个字符串. 我们可以用字符串常量对字符指针进行初始化.例如,有说明语句: char *str = "This is a string."; 是对字符指针进行初始化.此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址. 这里要注意字符指针与字符数组之间的区别.例如,有说明语句: char string[ ]="This is a st

字符数组和字符指针的差别

字符数组是一个指针常量,而字符指针是一个指针变量.例如以下代码所看到的 char a[80]; a[80]="Hello";   //错误.仅仅能挨个元素进行赋值或者使用字符串函数strcpy(str1,str2) char *p; p="Hello";   //正确.由于是变量能够指定指向哪个字符串

字符数组与字符指针的区别与联系

1.字符指针可以指向一个字符串. 我们可以用字符串常量对字符指针进行初始化.例如,有说明语句: char *str = "This is a string."; 是对字符指针进行初始化.此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址. 这里要注意字符指针与字符数组之间的区别.例如,有说明语句: char string[ ]="This is a string."; 此时,string是字符数组,它存放了一个字符串. 字符指针str与字符数组str

C-字符数组的存储, 字符指针, &#160;fputs, fgets

上课笔记: 字符串在C语言中的存储(数组和指针) 1. 使用字符数组来存储 1 char name[5] = {‘j’,’a’,’c’,’k’}; 2 char name[] = {‘j’,’a’,’c’,’k’}; 3 char name[] = {“jack”}; //只有直接给字符数组初始化1个串的时候, 才会自动加 ‘\0’ 4 char name[] = “jack”; 2. 使用字符指针来存储字符串数组 char *name = “jack”; 和 char name[] = “ja