❶ 为什么一个指针变量可以存储一串字符
你问:“为什么可以直接赋字符串呢?”
问的很好。在你的例子档首里面"abc"是一个激改常量字符串,程序运行时常量字符串"abc"会得明蠢判到一个内存地址,char
*p="abc"的语意是将p指向这个地址。
因此,本质上说,正如你所理解的,的确是将地址赋值给指针。
❷ c语言中整型变量怎么存储字符串
这不是保存的字符串,是一个字符,由于c=getchar()中getchar 获得的是字符的ascii值,然后返回给c,再putchar时是自动转换为char输出了。
这是循环获取China的每一个字符。
❸ char类型变量能不能储存字符串
不能!
%c只能存储一个字符!
%s能存储一串字符!
❹ 为什么一个指针变量可以存储一串字符
指针并不是真的档雀可以存储字符串,而是存储了字符串首字母a的地址,其实每个字符串都是以'/0'为结束符,当用中蠢举%s输出时,卖碧在输出前一个字符的同时指针会自动跳到下个字符的地址处,直到遇到'/0'停止,所以%s可以输出一个字符串.
❺ C++中string类型变量存储字符串的方法
一般的实现是类似于这个样子.
char*
ptr;
//
内存指针,
用来保存字符串
size_t
cap;
//
动态内存的长度
size_t
len;
//
字符串的长度
实际的实现会更加复杂,
而且是模板.
赋值的时候
先检查
ptr是不是
null,
如果是的话分配足够的动态内存.
如果ptr不是null,
那么检查cap是否足够放下字符串,
如果不足的话重新分配内存.
然后调用std::或者strcpy之类的函数,
把字符串复制到ptr中.
(1)它是通过动态分配内存给_Ptr来存储字符串,还是通过其他的什么方式来存储字符串的?
动态内存.