在C语言中,使用结构体的时候 "->" 和 “." 有什么区别,越详细越好,谢谢?
貌似没有区别。
有几种访问结构体的方法:
访问结构成员的运算符有两种,一种是结构成员运算符“·”,也称为“圆点运算符”,另一种是结构指针运算符“->”,也称“箭头运算符”。
结构成员运算符通过结构变量名访问结构体的成员。例如:
printf("%s",student.name);
结构指针运算符由减号“-”和“>”组成(中间没有空格),它通过指向结构的指针访问结构的成员。假定声明了指向struct student的指针sPtr,并且把结构student1的地址赋给了sPtr,如下列语句通过指针sPtr打印了结构student1的成员name:
printf("%s",sPtr->name);
不要在结构指针运算符的-和>之间插入空格。
在用指针和结构成员运算符引用结构成员时一定要用圆括号(*sPtr).name,因为结构成员运算符“.”比指针复引用运算符“*”的优先级高,所以圆括号是必须的。
下面的程序演示了结构成员和结构指针运算符的用法:
#include
struct student
{char *name;
char *sex;
};
main()
{
struct student student1;
struct student *sPtr;
student1.name="Tom";
student1.sex="male";
sPtr=&student1;
printf("%s%s%s\n%s%s%s\n%s%s%s\n",
student1.name,"'s sex is",student1.sex,
sPtr->name,"'s sex is",sPtr->sex,
(*sPtr).name,"'s sex is",(*sPter).sex);
return 0;
}
./和../以及/有什么区别?
区别是目录所在层级不一样。
.\:代表目前所在的目录。
..\:代表上一层目录。
两个都表示路径的意思。
1、相对路径-顾名思义,相对路径就是相对于当前文件的路径。网页中一般表示路径使用这个方法。
2、绝对路径-绝对路径就是你的主页上的文件或目录在硬盘上真正的路径。绝对路径就是你的主页上的文件或目录在硬盘上真正的路径。
C/C++ &与&& |与|| 的区别
&&表示逻辑与的意思,即为and。当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
比如?12&&23的结果就是1,12&&-1?的结果是1,123&&0的结果就是0。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException。
&表示按位与。
&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
二进制与运算规则:1&1=1? 1&0=0? 0&0=0
15&127为什么等于15啊??
15二进制: (0000 1111)
127二进制: (1111 1111)
按位与自然就是(0000 1111)=15
||表示逻辑或逻辑或,是逻辑运算符,符号是“||”(在PASCAL中为"or")。?“逻辑或”相当于生活中的“或者”,当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”。
12||1 =1? 12||0 =1 0||0 =0
|表示按位或按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位(也就是最后一位)相或。只要对应的二个二进位有一个为1时,结果位就为1。
128: (0001 0000 0000)
127: (0000 1111 1111) (高位用0补齐)
按位或就是(0001 1111 1111)=255
以上内容参考 百度百科——keil
./和../以及/之间的区别:含义不同,使用不同。
一、含义不同:
1、./是当前目录
2、../是父级目录
3、/是根目录
二、使用不同:
根目录指逻辑驱动器的最上一级目录,它是相对子目录来说的。打开“我的电脑”,双击C盘就进入C盘的根目录,双击D盘就进入D盘的根目录。其它类推。根目录在文件系统建立时即已被创建,其目的就是存储子目录(也称为文件夹)或文件的目录项。
电脑中的子目录很好理解,例如:
1、C:\是父目录,C:\Windows就是C:\的子目录。
2、C:\Windows\System32\就是C:\Windows的子目录。
使用模式
通配符优先级
对于使用通配符模式的各种资源,Tivoli Access Manager for Operating Systems 必须确定将应用何种通配符模式。例如,假设有两种模式:
/usr/local/*.log和/usr/local/user1/*.log
字符串 /usr/local/user1/x.log 与这两种模式都匹配。
为了解决这种模棱两可的情况,应用了优先级规则。模式越具体,其优先级也越高。根据这种原则,/usr/local/user1/x.log 在与 /usr/local/*.log 模式相匹配之前先与 /usr/local/user1/*.log 模式相匹配。由于找到一个匹配项,任何可应用于匹配此模式的对象的策略都将适用。
以上内容参考:百度百科-通配符
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!