C字符串指针遇到的问题
看下面的示例代码:
int main()
{
char *ptr = "GeeksQuiz";
printf("%c\n", *&*&*ptr);
return 0;
} // 结果为
// G
字符串在内存中是以数组的方式来表示,*ptr指向字符串数组的第一个元素。
关键代码:*&*&*ptr 。首先,*号和&号的优先级是一样的,结合方向是从右往左。第一个,*ptr指向第一个元素,提取出来就G;第二个&*ptr,表示取出*ptr的地址,这里可以这样理解,*ptr表示一个变量内容,在变量内容前面加一个取址符号,表示取出这个变量的地址;第三个,*&*ptr,可以写为*(&*ptr),由于括号里面的内容表示一个变量地址,在变量地址前面加上一个*号,则表示取出这个变量内容;可以在*ptr前面加多个 *&对,最后的结果都是一样的。比如当前这个例子在*ptr前面加了2个*&对。我还可以再加2个*&对,它的值还是不变:*&*&*&*&*ptr 还是等于G。
C字符串指针遇到的问题的更多相关文章
- C语言回顾-字符串指针
		
1.字符串指针 char *变量名="字符串内容"; char ch='b'; char *p1=&ch; char *str="C Language" ...
 - 【c实现,vc6调试通过】给出一字符串指针,计算出字符串指针中单词数
		
#include <stdio.h> /* 给出一字符串指针,计算出字符串指针中单词数, 单词不包括'.',',',';','?','_','"',由0-9数字或26个字母组成 ...
 - C语言中字符数组和字符串指针分析
		
这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这 ...
 - cout输出字符串指针
		
先给出通过字符型指针输出字符串的示例代码,如下: #include <iostream>using std::cout;using std::endl; int main(){ const ...
 - C++字符串指针与字符数组的区别
		
今天发现这样一个问题 #include <iostream> using namespace std; int main() { ]; strcpy_s(ch1,");//编译通 ...
 - C++ 字符串指针与字符串数组
		
在做面试100题中第21题时,发现char *astr="abcdefghijk\0";和char astr[]={"abcdefghijk"};有点区别,以前 ...
 - Delphi的字符(Char),字符串(String),字符串指针(PChar),字符数组arrayofchar(来自http://delphi.cjcsoft.net/论坛)
		
Delphi有三种类型的字符: AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉. WideChar这是2字节的Unicode字符. Char在目前相当于AnsiChar,但在De ...
 - c语言字符串指针
		
最近正在看c语言,在指针这块遇到了麻烦,特别是字符串指针这块,简单记录下. 字符串指针 void main() { char *p = "tasklist"; printf(&qu ...
 - snprintf不能使用"字符串指针"赋值,可以使用字符数组
		
#cat snprintf.c #include <stdio.h> #include <stdlib.h> #include <string.h> struct ...
 - C语言 字符串指针和字符串数组使用区别
		
字符串指针和字符串数组使用区别 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 ...
 
随机推荐
- 五个demo案例带你学习PHP反序列化漏洞
			
一直想研究下php反序列化漏洞,花了几天时间做了个简单的了解..写篇文章记录下. 直白点就是围绕着serialize和unserialize两个函数. 一个用于序列化,一个用于反序列化. 我们通常把字 ...
 - vim normal 模式下L键
			
vim normal 模式下L键总是到一行的最后一个字符,而不是最后一个字符的下一个字符,这样进入插入模式,就还得往右移动一下,就很费劲? 怎么解决 更新: a键进入插入即可
 - EditPlus 3:设置自动换行
			
打开软件,菜单栏点击Document,再在下拉栏中点击Permanent Settings,然后在弹出的设置框中找到Word Wrap点击,最后在弹出的小框中勾选第一个Enable word wrap ...
 - python之list操作
			
序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 列表(list)是最常用的Python数据类型,它可以作为一个方 ...
 - Planning CodeForces - 854C
			
Planning CodeForces - 854C 题意:有n架航班,第i架原先的时候是在第i分钟起飞的.现在前k分钟无法有飞机起飞,因此需要调整安排表,延后飞机起飞.仍然要求每一分钟只有一架飞机起 ...
 - Kruskal 2015百度之星初赛2 HDOJ 5253 连接的管道
			
题目传送门 /* 最小生成树(Kruskal):以权值为头,带入两个端点,自然的排序;感觉结构体的并查集很好看 注意:题目老头要的是两个农田的高度差,中文水平不好,题意理解成和平均值的高度差! */ ...
 - 【转载】(0, eval)(‘this’)
			
var window = this || (0, eval)('this') 在avalon源码中有这么一行代码,var window = this很容易理解 这里复习一下Global Object: ...
 - 使用css3 制作switch开关
			
使用css3来实现switch开关的效果: html代码: <!--switch开关--><div class="switch-btn"> <inpu ...
 - 序列化shelve模块
			
1.shelve对pickle进行封装,所以shelve也只能在python里使用. shelve可以进行多次dump而且顺序不会乱. import shelve f = shelve.open('s ...
 - 响应式布局 max-device-width 与 max-width 的区别
			
闲来没事,研究了一下多屏适配和响应式布局的 CSS. 第一种写法 @media screen and (max-device-width: 320px) { } @media screen and ( ...