c语言 *p=*tp与*p==*tp的区别
时间: 2024-08-14 08:04:08 浏览: 103
在 C 语言中,`*p=*tp` 和 `*p == *tp` 表达的意思是不同的。
1. `*p=*tp`: 这是一个赋值操作,它首先解引用指针 `tp`,即 `*tp`,然后将这个表达式的值赋给指针 `p` 所指向的位置。这通常用于将一个变量的值复制到另一个变量,假设 `tp` 指向了某个变量的地址,`*p=*tp` 将该变量的值拷贝到了 `p` 指向的地方。
2. `*p == *tp`: 这是一个比较操作,它比较的是两个指针所指向的内容是否相等。`*p` 解引用 `p` 的内容,`*tp` 解引用 `tp` 的内容,所以 `*p == *tp` 判断的是这两个内存位置上的值是否相等。
相关问题
C语言 char* wifi_name[] = { "HUAWEI1078", "TP-LINK 983", "Moorgen Wifi"};算出元素个数
可以使用 sizeof(wifi_name) / sizeof(wifi_name[0]) 来计算元素个数,其中 wifi_name[0] 表示数组的第一个元素,sizeof(wifi_name[0]) 表示第一个元素的大小,sizeof(wifi_name) 表示整个数组的大小。因此,整个表达式的值就是数组中元素的个数。完整代码如下:
```
#include <stdio.h>
int main() {
char* wifi_name[] = { "HUAWEI1078", "TP-LINK 983", "Moorgen Wifi"};
int num = sizeof(wifi_name) / sizeof(wifi_name[0]);
printf("数组中元素的个数为:%d\n", num);
return 0;
}
```
阅读全文