我正在尝试修改代码以适应自己的喜好。为此,我需要了解如果有人有任何想法,用C语言中的if(!String)是什么意思?
示例:
const char *String;
if (!String) {
//do something
}
答案 0 :(得分:0)
根据C标准(6.5.3.3一元算术运算符)
5逻辑求反运算符的结果!如果的值是0 其操作数的值等于0,如果其操作数的值等于1 比较等于0。结果的类型为int。表达式!E是 相当于(0 == E)。
和(6.3.2.3指针)
3整数常量表达式,其值为0,或者这样的整数 转换为void *类型的表达式称为空指针常量。 66)如果将空指针常量转换为指针类型,则 结果指针(称为空指针)可以保证进行比较 不等于指向任何对象或函数的指针。
这是if语句
if (!String) {
//do something
}
如果指针String
已初始化,则检查指针String
是否等于空指针。
例如,该语句
if (!*String) {
//do something
}
检查指针所指向的字符是否等于以空字符结尾的'\0'
。
如果在C程序中包含标准标头<iso646.h>
,则可以用运算符!
代替单词not
。
例如
#include <iso646.h>
//...
if ( not String ) {
//do something
}
答案 1 :(得分:0)
这是写import SwiftUI
enum SectionType: String, CaseIterable {
case top = "Top"
case best = "Best"
}
struct ContentView : View {
@ObjectBinding var store = SelectionStore()
var body: some View {
SegmentedControl(selection: $store.selection) {
ForEach(SectionType.allCases.identified(by: \.self)) { type in
Text(type.rawValue).tag(type)
}
}
}
}
的简短方法。
通常我们改为写if(String == NULL)
的缩写,if(String)
。请注意,这不会检查它是否指向有效位置。这段代码可以编译,但是会(或可能)失败:
if(String != NULL)
在不再指向有效位置时尝试打印str是未定义的行为。该程序可能会打印“ Hello World!”,崩溃或其他信息。